home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Extra 1996 #2 / Amiga Plus CD - 1996 - No. 2 Extra.iso / clarissa1_1-demo / macros / farbverlauf3p.clssa < prev    next >
Text File  |  1995-01-26  |  3KB  |  118 lines

  1. /***********************************************************************
  2.   GADGET: "'Farbverlauf 3P'" "6" AUTO TYP: "?"
  3.  
  4.   $DAT >>Farbverlauf3P.clssa<<12.10.1992 - (C) ProDAD Holger Burkarth
  5.                               20.01.1995 - (C) ProDAD Michael Christoph
  6.  
  7.  Dieser Macro berechnet einen Farbverlauf in einer Animation. Hierzu
  8.  wählt der User einen Bereich aus wie gewohnt, danach wird ein
  9.  Farbverlauf vom Startbild bis zum Endbild berechnet. Zusätzlich arbeitet
  10.  dieser Macro mit einem Zwischenwert, der aus der aktuellen Position
  11.  ermittelt wird. Somit kann ein Farbverlauf mit einer Übergangsfarbe
  12.  erzeugt werden.
  13. ************************************************************************/
  14.  
  15. Options Results
  16. Address clariSSA
  17.  
  18.   FailAt 10
  19.   AltFail=RESULT
  20.  
  21.   GetArea
  22.   PARSE VAR RESULT . "FROM" von "TO" bis .
  23.   von=Strip(von)
  24.  
  25.   Anzahl=bis-von
  26.   IF Anzahl>3 THEN DO
  27.  
  28.     DO FOREVER
  29.       GetAnimInfo
  30.       PARSE VAR RESULT . "FORMAT" x y t "VIEWMODE" ViewMode . "POS" AktPos .
  31.       AnzFarben=2**t - 1
  32.  
  33.       MSRequester "TITLE '*** 3 Punkt - Farbverlauf ***'",
  34.                         "''",
  35.                         "'Farbverlauf von "von" über "AktPos" bis "bis"'",
  36.                         "''",
  37.                         "'Wählen Sie bitte die Effektart aus.'",
  38.                   "PTEXT 'Alle Farben ...'",
  39.                         "'Farbbereich ...'"
  40.       IF RC~=0 THEN LEAVE
  41.       Art=RESULT
  42.  
  43.       IF Art=1 THEN DO
  44.         Liste=""
  45.         l=0
  46.         DO UNTIL l>AnzFarben
  47.           Liste=Liste|| l " "
  48.           l=l+1
  49.         END
  50.       END
  51.       ELSE IF Art=2 THEN DO
  52.         COLRequest "FROM 0 TO 0 TITLE '*** 3 Punkt - Farbverlauf ***''''Wählen Sie den Farbbereich''für die Bearbeitung aus.'"
  53.         IF RC~=0 THEN LEAVE
  54.         Liste=RESULT
  55.       END
  56.  
  57.       ViewFrame COPS AktPos
  58.       IF RC~=0 THEN LEAVE
  59.       GetColor Liste
  60.       Scheitel=RESULT
  61.  
  62.       ViewFrame COPS bis
  63.       IF RC~=0 THEN LEAVE
  64.       GetColor Liste
  65.       Ende=RESULT
  66.  
  67.       ViewFrame COPS von
  68.       IF RC~=0 THEN LEAVE
  69.       GetColor Liste
  70.       Start=RESULT
  71.  
  72.       Anzahl1=AktPos-von
  73.       Anzahl2=bis-AktPos+1
  74.  
  75.       BOOLRequest "'Animationsfarben ändern?''Anim: Master''<< von "von" bis "bis" >>'"
  76.       IF RC~=0 | RESULT="NO" THEN LEAVE
  77.  
  78.       RequestStatus OFF
  79.       DO UNTIL von>bis
  80.         ViewFrame COPS von
  81.         IF RC~=0 THEN LEAVE
  82.  
  83.         IF von < AktPos THEN DO
  84.           MStart=Start
  85.           MEnde=Scheitel
  86.           fa=(1-(AktPos-von)/Anzahl1)
  87.         END; ELSE DO
  88.           MStart=Scheitel
  89.           MEnde=Ende
  90.           fa=((von-AktPos)/Anzahl2)
  91.         END
  92.  
  93.         l=0
  94.         Liste=""
  95.         DO UNTIL MStart=""
  96.           PARSE VAR MStart x Sr Sg Sb MStart
  97.           PARSE VAR MEnde  x Er Eg Eb MEnde
  98.           r=Sr+(Er-Sr)*fa
  99.           g=Sg+(Eg-Sg)*fa
  100.           b=Sb+(Eb-Sb)*fa
  101.           Liste=Liste x TRUNC(r) TRUNC(g) TRUNC(b)
  102.           l=l+1
  103.         END
  104.         SetColor Liste
  105.         Record COPS
  106.         IF RC~=0 THEN LEAVE
  107.         von=von+1
  108.       END
  109.       RequestStatus ON
  110.  
  111.       LEAVE
  112.     END
  113.   END
  114.   ELSE Message "'Für einen Farbverlauf müssen''min. 4 Frames ausgewählt werden.'"
  115.  
  116.   FailAt AltFail
  117. exit
  118.